package org.little.aop.framework;

import org.little.aop.Advice;

import java.lang.reflect.Method;
import java.util.List;

/**
 * @author Tinyspot
 * @date 2022-05-29 21:24
 */
public interface AopConfig {

    Class<?> getTargetClass();

    Object getTargetObject();

    void setTargetObject(Object object);

    boolean isProxyTargetClass();

    Class<?>[] getProxiedInterfaces();

    boolean isInterfaceProxied(Class<?> interf);

    List<Advice> getAdvices();

    void addAdvice(Advice advice);

    List<Advice> getAdvices(Method method/*, Class<?> targetClass*/);
}
